package com.ruoyi.market.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

/**
 * 等级设置对象 level
 * 
 * @author ruoyi
 */
public class Level extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 等级设置ID */
    private Long levelId;

    /** 等级设置标题 */
    private String levelTitle;

    /** 店铺ID */
    private String shopId;

    /** 等级图片 */
    private String levelImage;

    /** 首单提成比例 */
    private int firstOrderCommissionRate;

    /** 续单提成比例 */
    private int continueOrderCommissionRate;

    /** 首次打赏提成比例 */
    private int firstRewardCommissionRate;

    /** 续打赏提成比例 */
    private int continueRewardCommissionRate;

    /** PK胜方提成比例 */
    private int pkVictoryCommissionRate;

    /** PK败方方提成比例 */
    private int pkDefeatCommissionRate;

    /** PK提成门槛 */
    private BigDecimal pkCommissionAmount;

    /** 晋升需周收益 */
    private BigDecimal advanceAmount;

    /** 排序 */
    private Long levelSort;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 所属店铺信息   */
    private ConfigBase shopInfo;

    public Level()
    {

    }

    public Level(Long levelId)
    {
        this.levelId = levelId;
    }

    public Long getLevelId()
    {
        return levelId;
    }

    public void setLevelId(Long levelId)
    {
        this.levelId = levelId;
    }

    public Long getLevelSort(){ return levelSort;}

    public void setLevelSort(Long levelSort){ this.levelSort = levelSort; }

    public String getShopId(){ return shopId; }

    public void setShopId(String shopId){ this.shopId = shopId; }

    @NotBlank(message = "名称不能为空")
    public String getLevelTitle(){ return levelTitle;}

    public void setLevelTitle(String levelTitle){ this.levelTitle = levelTitle; }

    @NotBlank(message = "图标不能为空")
    public String getLevelImage(){ return levelImage;}

    public void setLevelImage(String levelImage){ this.levelImage = levelImage; }

    public int getFirstOrderCommissionRate(){ return firstOrderCommissionRate;}

    public void setFirstOrderCommissionRate(int firstOrderCommissionRate){ this.firstOrderCommissionRate = firstOrderCommissionRate; }

    public int getContinueOrderCommissionRate(){ return continueOrderCommissionRate;}

    public void setContinueOrderCommissionRate(int continueOrderCommissionRate){ this.continueOrderCommissionRate = continueOrderCommissionRate; }

    public int getFirstRewardCommissionRate(){ return firstRewardCommissionRate;}

    public void setFirstRewardCommissionRate(int firstRewardCommissionRate){ this.firstRewardCommissionRate = firstRewardCommissionRate; }

    public int getContinueRewardCommissionRate(){ return continueRewardCommissionRate;}

    public void setContinueRewardCommissionRate(int continueRewardCommissionRate){ this.continueRewardCommissionRate = continueRewardCommissionRate; }

    public int getPkVictoryCommissionRate(){ return pkVictoryCommissionRate;}

    public void setPkVictoryCommissionRate(int pkVictoryCommissionRate){ this.pkVictoryCommissionRate = pkVictoryCommissionRate; }

    public int getPkDefeatCommissionRate(){ return pkDefeatCommissionRate;}

    public void setPkDefeatCommissionRate(int pkDefeatCommissionRate){ this.pkDefeatCommissionRate = pkDefeatCommissionRate; }

    public BigDecimal getPkCommissionAmount(){ return pkCommissionAmount;}

    public void setPkCommissionAmount(BigDecimal pkCommissionAmount){ this.pkCommissionAmount = pkCommissionAmount; }

    public BigDecimal getAdvanceAmount(){ return advanceAmount;}

    public void setAdvanceAmount(BigDecimal advanceAmount){ this.advanceAmount = advanceAmount; }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public ConfigBase getShopInfo()
    {
        return shopInfo;
    }

    public void setShopInfo(ConfigBase shopInfo)
    {
        this.shopInfo = shopInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("levelId", getLevelId())
            .append("shopId", getShopId())
            .append("levelTitle", getLevelTitle())
            .append("levelImage", getLevelImage())
            .append("levelSort", getLevelSort())
            .append("firstOrderCommissionRate", getFirstOrderCommissionRate())
            .append("continueOrderCommissionRate", getContinueOrderCommissionRate())
            .append("firstRewardCommissionRate", getFirstRewardCommissionRate())
            .append("continueRewardCommissionRate", getContinueRewardCommissionRate())
            .append("pkCommissionAmount", getPkCommissionAmount())
            .append("advanceAmount", getAdvanceAmount())
            .append("shopInfo", getShopInfo())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
